package com.eco.fanliapp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.eco.fanliapp.common.response.ServerResponse;
import com.eco.fanliapp.entity.AppNewsLog;

import java.math.BigDecimal;
import java.util.List;

/**
 * 消息记录 服务层
 * 
 * @author xiaoxx
 * @date 2019-05-14
 */
public interface IAppNewsLogService extends IService<AppNewsLog>
{
	/**
     * 查询消息记录信息
     * 
     * @param tableId 消息记录ID
     * @return 消息记录信息
     */
	AppNewsLog selectAppNewsLogById(Integer tableId);
	
	/**
     * 查询消息记录列表
     * 
     * @param appNewsLog 消息记录信息
     * @return 消息记录集合
     */
	List<AppNewsLog> selectAppNewsLogList(AppNewsLog appNewsLog);
	
	/**
     * 新增消息记录
     * 
     * @param appNewsLog 消息记录信息
     * @return 结果
     */
	int insertAppNewsLog(AppNewsLog appNewsLog);
	
	/**
     * 修改消息记录
     * 
     * @param appNewsLog 消息记录信息
     * @return 结果
     */
	int updateAppNewsLog(AppNewsLog appNewsLog);
		
	/**
     * 删除消息记录信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	int deleteAppNewsLogByIds(String ids);

	/**
	 * 消息入库操作
	 * @param userId
	 * @param msgType
	 * @param money
	 */
	void newsType(Long userId, int msgType, BigDecimal money, String... templateVariables);

	/**
	 * 根据消息类型获取我的消息列表按照时间倒叙排列--新
	 * @param appUserId
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	ServerResponse<List<AppNewsLog>> getMessageList(Long appUserId, Integer pageNum,
                                                    Integer pageSize, Integer msgType);

	/**
	 * 查询用户邀请次数
	 * @param userId
	 * @return
	 */
	Integer findFenSiCount(Long userId);


    ServerResponse<List<AppNewsLog>> getRedEnvelopes(Long userId);

	/**
	 * 未读消息
	 * @param appUserId
	 * @return
	 */
	ServerResponse getNoReadMessage(Long appUserId,String msgType);

	/**
	 * 全部消息已读操作
	 * @param appUserId
	 * @return
	 */
	ServerResponse AllMessageToRead(Long appUserId,String msgType);
	/**
	 * 部分活動消息已读操作
	 * @param appUserId
	 * @param ids
	 * @return
	 */
	ServerResponse MessageToRead(Long appUserId,String ids);

}
